#ifndef _WORLD_H
#define _WORLD_H
#include <map>
#include "Coord.h"
#include "Land.h"
#include "Tile.h"

class World {

private:
	Coord start = Coord(0,0);
	Coord end = Coord(0,0);
	std::map<int, Land*> lands = std::map<int, Land*>();
	std::map<int, TileObject*> objects = std::map<int, TileObject*>();

	std::map<Coord, Tile*> board = std::map<Coord, Tile*>();

public:

	void setStart(Coord);
	void setEnd(Coord);

	void addLand(int, Land *);
	void addTile(Coord, Tile *);
	void addObject(int, TileObject *);

	bool doesLandExist(int);
	bool doesObjectExist(int);

	Land *findLand(int);
	TileObject *findObject(int);

	std::map<int, Land*> & getLands();
	std::map<int, TileObject*> getObjects();
	std::map<Coord, Tile*> getBoard();

	int getTileCount();

	bool isCoordOnBoard(Coord);

};

#endif
